<?php
$id = ((isset($_GET['id']) && is_numeric($_GET['id'])) ? $_GET['id'] : false);

// Si l'utilisateur n'est pas identifié en tant qu'admin on retourne à la racine
if (session_id() == '')
     session_start();	    //unset($_SESSION['install']);
if($_SESSION['IS_ADMIN']!==true&&!isset($_SESSION['install']))
{
  header('Location: index.php');
  exit;
}

if ($id)
{
  $user = new Utilisateur($id);
}
else
{
  // Nouvel utilisateur
  $user = new Utilisateur('', '', '', '', '', 0, 0, 0);
}

// Le formulaire
$form = new HTML_QuickForm('user','post','admin.php?page=user_edit&id='.$id);
    
$form->setRequiredNote('<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> champs obligatoires</span>');
$form->setJsWarnings('Erreur de saisie :','Cliquez sur OK pour corriger');

$form->addElement('text', 'login', $LANG[40], 'value='.$user->getLogin());
$form->addRule('login', 'Vous devez spécifier un login', 'required', '', 'client');

$form->addElement('password', 'password1', $LANG[41]);
$form->addElement('password', 'password2', $LANG[42]);
if (empty($id))
{
  $form->addRule('password1', 'Vous devez spécifier un mot de passe', 'required', '', 'client');
  $form->addRule('password2', 'Vous devez spécifier un mot de passe', 'required', '', 'client');
}

$form->addRule(array('password1', 'password2'), 'Les mots de passe ne correspondent pas', 'compare', null, 'client');

$form->addElement('text', 'nom', $LANG[43], 'value='.$user->getNom());
$form->addElement('text', 'prenom', $LANG[44], 'value='.$user->getPrenom());
$form->addElement('text', 'mail', $LANG[441], 'value='.$user->getMail());

if ($user->getIsUploader())
{
  $form->addElement('checkbox', 'upload', '', $LANG[55], 'checked', 'value="1"');
}
else
{
  $form->addElement('checkbox', 'upload', '', $LANG[55], 'value="1"');
}

if ($user->getIsAdmin())
{
  $form->addElement('checkbox', 'admin', '', $LANG[56], 'checked', 'value="1"');
}
else
{
  $form->addElement('checkbox', 'admin', '', $LANG[56], 'value="1"');
}

if ($user->getIsActif())
{
  $form->addElement('checkbox', 'actif', '', $LANG[85], 'checked', 'value="1"');
}
else
{
  $form->addElement('checkbox', 'actif', '', $LANG[85], 'value="1"');
}

if($form->validate())
{
  function cleanLogin($var)
    {
      $var = eregi_replace('["\'\\;%]', '', $var);
      return clean($var);
    }

  function clean($var)
    {
      $var = strip_tags($var);
      $var = addslashes($var);
      return $var;
    }
  try
    {
  $user->setLogin(cleanLogin($form->exportValue('login')));
  $user->setNom(clean($form->exportValue('nom')));
  $user->setPrenom(clean($form->exportValue('prenom')));
  $user->setMail(clean($form->exportValue('mail')));
  $user->setIsUploader(clean($form->exportValue('upload')));
  $user->setIsAdmin(clean($form->exportValue('admin')));
  $user->setIsActif(clean($form->exportValue('actif')));


  $pass = $form->exportValue('password1');
  if (!empty($pass))
    $user->setPassword($pass);

  if (empty($id))
    $user->enregistrer();
  else
    $user->maj();
    }
 catch(ListerException $e)
   {
     echo 'Il y a eu une erreur lors de la création de l\'utilisateur.';
   }
  include 'admin/pages/list_users.php';
}
else
{
  $form->addElement('submit', 'submit', $LANG[45]);
  echo '
            <fieldset>
              <legend>'.(empty($id) ? 'Ajout' : 'Modfication').' d\'un utilisateur</legend>';
  $form->display();
  echo '
            </fieldset>';
}
?>
